          SUBROUTINE (MAT OE.VARS,NEW.VALUE,IS.DIR,HLP,CHG,ACTIONS,RESPS,REENTRY)
** Version# 17.0001[8] - 08/16/2012 - 04:36pm - TSMITH - eclipse
*** V17.0001 Change - Custom Coding . - 08/16/2012 - TSMITH - eclipse

*** Subroutine - OE.VE.UPD.COMM.COST
*-------------------------------------------------------------------------*
*** Formerly Known As: OE::IN.UNTCST, IN.NUM::9
*** Purpose: To take the VALUE passed in, and apply it to the order.  If
*** there are any problems with this operation, send them back in ACTIONS.
*-------------------------------------------------------------------------*
*** OE.VARS     - OID, GEN, etc. (see CC OE.EQUATES)               [IN]
*** NEW.VALUE   - What was entered by the user in OE.              (IN)
*** IS.COGS     - Flag saying that we are changing cogs cost       (IN)
***             - instead of price.
*** HLP         - Whether the user requested help or not           (IN)
*** CHG         - Whether the user changed the input at all.       (IN)
*** ACTION      - AM list of ACTIONs that tell what went wrong.    (OUT)
*** RESPS       - Responses to actions.                            (IN/OUT)
*** REENTRY     - Need to come back into the routine or not.       (OUT)
*-------------------------------------------------------------------------*
*** COMMON: Modifies LED and LD.  Needs CUS, CUSS, PLNE.
*-------------------------------------------------------------------------*
          $INCLUDE CC OE.EQUATES


          CST.ATTB = 'EXT'
          GET.PO.VARIANCE.VAL PO.VAR.CST,OID%,GEN%,LDID%,CST.ATTB,QSIGN%
          REENTRY = NO

          GEN = GEN%
          IF IS.DIR THEN
             LOCATE LED(33)<1,GEN%> IN LED(12)<1> SETTING GEN ELSE
                GEN = GEN%
             END
          END
          IAO.EDIT.OK = NO
          * If this is an IAO item, we need to check to see if user is
          * authorized for editting COGS or COST
          IF  LD(114) AND MODE%='S' THEN
             IAO.ID  = 'IAO.AUTH.COST'
             TEXT.IN = '%191'
             AUTH.KEY = 'SOE.EDIT.IAO.INV.COST'
             LOCATE IAO.ID IN RESPS<1> SETTING RPOS THEN
                IF NOT(RESPS<2,RPOS,1>) THEN
                   *for editting cost on IAO item, we ignore other
                   *authorizations for editting cost for the user.
                   *if user id authorized for editting cost on an IAO
                   *item, we just let them edit it without checking other
                   *authorization such as COGS.EDIT

                   RETURN
                END ELSE
                   IAO.EDIT.OK = YES
                END
             END ELSE
                REENTRY = YES
                ACT.ID   = IAO.ID
                LEVEL = 1
                BEGIN CASE
                   CASE NEW.ORDER%
                      LEVEL = 1
                   CASE NOT(NEW.ORDER%) AND LED(6)<1,GEN> # 'I'
                      LEVEL = 2
                   CASE NOT(NEW.ORDER%) AND LED(6)<1,GEN> = 'I'
                      LEVEL = 3
                   CASE OTHERWISE
                      NULL
                END CASE
                ACTION.ADD.AUTH ACTIONS,ACT.ID,,TEXT.IN,,AUTH.KEY,LEVEL,,OID%,GEN%
                RETURN
             END
          END







          *So, if they are allowed to edit IAO'cost, let them do it
          IF IAO.EDIT.OK THEN
             GOTO EDIT.IT
          END
          * Don't let the user edit the costs on a MJB or Jr Order
          * w/o the proper authorizations...
          IS.JR     = LED(129)<1,1>
          IS.MJB    = LED(128)<1,1>
          IF IS.MJB OR IS.JR THEN
             OE.MJB.AUTH.REQD OID%,IS.AUTH.REQD
             IF (IS.AUTH.REQD) THEN
                KEY.ID         = 'SOE.MASTER.BID.EDIT'
                CHECK.KEY KEY.ID,,KEY.LEVEL
                IF KEY.LEVEL < 4 THEN
                   MJB.ID = 'MJB.COST.AUTH'
                   PRMPT  = '%190'
                   IF IS.MJB THEN PRMPT = '%196'
                   LOCATE MJB.ID IN RESPS<1> SETTING RPOS THEN
                      IF NOT(RESPS<2,RPOS,1>)                   THEN RETURN
                   END ELSE
                      ACTION.ADD.AUTH ACTIONS,MJB.ID,,PRMPT,,KEY.ID,3,,OID%,GEN%
                      REENTRY = YES
                   END
                END
             END ELSE
                KEY.LEVEL = 4
             END
          END
          * Check for ordery type authorizations.
EDIT.IT:  BR  = LED(2)<1,GEN,2>
          BID = LED(6)<1,GEN>
          OE.VE.VERF.COST.LVL OID%,GEN,LDID%,BR,BID,YES,CHG,HLP,NEW.VALUE,ACTIONS,RESPS,REENTRY,FATAL,IAO.EDIT.OK
          IF FATAL THEN RETURN
          PRICE.PER.GET PER,,,,LED(22)<1,GEN>
          IF NEW.VALUE = '' THEN IQ.COGS = '' ELSE
             IF LD(85) THEN
                UOM.PER.GET LD(85),PER
             END
             IQ.COGS = ICONV(ICONV(OCONV(NEW.VALUE,'MR3'),'MR9')/PER,'MR0')
          END
          IF MODE%='T' THEN POVRD = 'T' ELSE POVRD = YES

          *** Check the GP of this item to make sure the
          *** controls are correct.
          PRC.ERROR = NO
          IF IQ.COGS = '' THEN
             OE.CALC.COMM.COST GEN,TIQ.COGS,YES
          END ELSE
             TIQ.COGS = IQ.COGS
          END
          IF (IQ.COGS # '') AND (LED(92)<1,GEN,2>+0 # 0) THEN
             XCURR   = LED(92)<1,GEN,2>
             XCURR   = OCONV(XCURR,'MR4')
             IQ.COGS = IQ.COGS * XCURR
             TIQ.COGS = TIQ.COGS * XCURR
          END
          OE.GP.CHECK OID%,GEN,LDID%,,PRC.ERROR,TIQ.COGS,YES,,,,,,YES,ACTIONS,RESPS,STOP.FLOW
          IF STOP.FLOW THEN
             REENTRY = YES
             RETURN
          END




          IF NOT(PRC.ERROR) THEN
             OLD.COMM = LD(27)<1,GEN%>
             * If manual override clear the last override code
             IF CHG AND LD(48)<1,GEN%> AND NEW.VALUE # '' THEN
                LD(48)<1,GEN%> = ''
             END
             OE.UPD.COMM.COST GEN,YES,IQ.COGS,,OID%,,ACTIONS,RESPS
             PRC.BR = LED(2)<1,GEN%,1>
             IF MODE% = 'S' AND LD(114) THEN
                READ COPY.IAO.COGS FROM CTRBFILE,"COPY.COST.TO.COGS.IAO~":PRC.BR ELSE COPY.IAO.COGS = ''
                IF COPY.IAO.COGS AND (OLD.COMM = LD(10)<1,GEN%>) THEN
                   LD(11)<1,GEN%> = LD(10)<1,GEN%>
                   LD(10)<1,GEN%> = LD(27)<1,GEN%>
                   OE.UPDATE.LDID LDID%,OID%,GEN%,LOG.MV%,QSIGN%
                END
             END





             *** If the change gets made, may need to expire pricing on
             *** a bid.
             IF LED(6)<1,GEN> = 'B' THEN
                OE.VE.AUTH.COST.UPD OID%,GEN,LDID%,,YES,IS.DIR,YES
             END

             * Check the uet codes - may need to add an action to get the
             * right code sent.
             JAVA.UET.LOG.PRC OID%,GEN%,LDID%,ACTIONS

             OE.LI.UPDATE MAT OE.VARS
          END


COGS = LD(10)<1,GEN>
COST = LD(27)<1,GEN>
PN = LD(1)<1,GEN>
READV DESC FROM PRDFILE,PN,1 ELSE DESC = ''
IF COGS > COST AND USER.ID="JOET" THEN
MESS 20,8,BELL:'COGS is greater than Cost for ':DESC<1,1>:'!'
END


          IF PO.VAR.CST THEN
             PO.VAR.CST = ICONV(PO.VAR.CST,'MR9')
             UPD.PO.VARIANCE.VAL PO.VAR.CST,OID%,GEN%,LDID%,CST.ATTB,QSIGN%,ERR.MSG

             IF ERR.MSG THEN
                ACTION.ADD.MSG ACTIONS,,,ERR.MSG,,1,YES
             END
          END


          RETURN
*-------------------------------------------------------------------------*
!TSMITH~08/16/12~16:36


